package com.ruoyi.business.service;

import com.ruoyi.business.domain.Order;

import java.util.List;

/**
 * 微信小程序订单Service接口
 */
public interface IOrderService {
    /**
     * 查询订单
     * 
     * @param orderId 订单ID
     * @return 订单
     */
    Order selectOrderById(Long orderId);

    /**
     * 查询订单列表
     * 
     * @param openid 微信用户openid
     * @param status 订单状态
     * @return 订单集合
     */
    List<Order> selectOrderList(String openid, String status);

    /**
     * 新增订单
     * 
     * @param order 订单
     * @return 结果
     */
    int insertOrder(Order order);

    /**
     * 修改订单
     * 
     * @param order 订单
     * @return 结果
     */
    int updateOrder(Order order);

    /**
     * 取消订单
     * 
     * @param orderId 订单ID
     * @return 结果
     */
    int cancelOrder(Long orderId);
    
    /**
     * 支付订单
     * 
     * @param orderId 订单ID
     * @return 结果
     */
    int payOrder(Long orderId);
    
    /**
     * 申请退款
     * 
     * @param orderId 订单ID
     * @param reason 退款原因
     * @return 结果
     */
    int refundOrder(Long orderId, String reason);
    
    /**
     * 确认收货
     * 
     * @param orderId 订单ID
     * @return 结果
     */
    int confirmOrder(Long orderId);
    
    /**
     * 评价订单
     * 
     * @param orderId 订单ID
     * @param rating 评分(1-5)
     * @param comment 评价内容
     * @return 结果
     */
    int reviewOrder(Long orderId, Integer rating, String comment);
    
    /**
     * 删除订单（仅限已完成或已取消的订单）
     * 
     * @param orderId 订单ID
     * @return 结果
     */
    int deleteOrder(Long orderId);
    
    /**
     * 再次购买
     * 
     * @param orderId 原订单ID
     * @return 新订单
     */
    Order rebuyOrder(Long orderId);
} 